<?php
/*
	La classe modèle pour les livres. 
	Le constructeur permet de préparer trois requêtes de sélection de livres. Deux nouvelles propriétés sont définies par rapport à la classe Model/Template ; "selectByAuthor" et "selectByCategory". De la même manière, on retrouve plus loin les méthodes pour exécuter et récupérer les résultats de ces requêtes.
*/
class Model_Trajets extends Model_Template{

	/*private $selectByStationDep;
	private $selectByStationArv;*/
	
	public function __construct(){
		parent::__construct();
		
		$trajets = 'SELECT idTrajet, idMetro, idStationDep, idStationArv, horaire, idInscrit FROM Trajets';
		$this->selectAll = Controller_Template::$db->prepare($trajets);
		
		$ajoutTrajet = 'INSERT INTO Trajets(idMetro, idStationDep, idStationArv, horaire, idInscrit) 
				VALUES (:idMetro, :idStationDep, :idStationArv, :horaire, :idInscrit)';
		$this->insert = Controller_Template::$db->prepare($ajoutTrajet);
		
		$updateTrajet = 'UPDATE Trajet SET idMetro = :idMetro , idStationDep = :idStationDep, idStationArv = :idStationArv, horaire = :horaire,  WHERE idTrajet = :id';
		$this->update = Controller_Template::$db->prepare($updateTrajet);
		
		$supTrajet = 'DELETE FROM Trajets WHERE idTrajet = ?';
		$this->delete = Controller_Template::$db->prepare($supTrajet);
	
		$infoTrajetById = 'SELECT idTrajet, idMetro, idStationDep, idStationArv, horaire, idInscrit FROM Trajets WHERE  idInscrit = ?';
		$this->selectById = Controller_Template::$db->prepare($infoTrajetByIdInscrit);
		
		/*$sql = 'SELECT idStationDep
				FROM Trajets
				WHERE idInscrit = ?
				ORDER BY nomTrajet';
		$this->selectByStationDep = Controller_Template::$db->prepare($sql);
		
		$sql = 'SELECT idStationArv
				FROM Trajets
				WHERE idInscrit = ?
				ORDER BY nomTrajet';
		$this->selectByStationArv = Controller_Template::$db->prepare($sql);*/
	}

	public function insertTrajet($idMetro, $idStationDep, $idStationArv, $horaire, $idInscrit) {
		$this->insert->execute(array(':idMetro' => $idMetro, ':idStationDep' => $idStationDep, ':idStationArv' => $idStationArv, ':horaire' => $horaire, 'idInscrit' => $idInscrit));
		return $this->insert->rowCount();
	}	

	public function modifTrajet($idMetro, $idStationDep, $idStationArv, $horaire, $idInscrit, $id) {
		$this->update->execute(array(':idMetro' => $idMetro, ':idStationDep' => $idStationDep, ':idStationArv' => $idStationArv, ':horaire' => $horaire, ':idInscrit' => $idInscrit, ':id' => $id));
		return $this->update->rowCount();
	}
	/*public function getByStationDep($idStationDep){
		$this->selectBySationDep->execute(array($idStationDep));
		return $this->selectByStationArv->fetchAll();
	}

	public function getByStationArv($idStationArv){
		$this->selectByCategory->execute(array($id));
		return $this->selectByCategory->fetchAll();
	}*/
}

